{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 金融 证券 图谱搭建"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "本项目为基于 Python 中金融数据包 `TUSHARE` ，搭建一个金融证券知识图谱。\n",
    "\n",
    "项目以 jupyter notebook 的形式开源，方便感兴趣的朋友一步步复现。\n",
    "整个项目结构如下："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![](../pictures/structures.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 数据获取"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "数据来源：TUSHARE\n",
    "\n",
    "网站：https://tushare.pro/document/2\n",
    "\n",
    "从 `TUSHARE` 的接口文档，对数据进行筛选。找出关联数据，这里我先选择以下**6**类数据。\n",
    "- 股票列表\n",
    "- 上市公司基本信息\n",
    "- 上市公司管理层\n",
    "- 公募基金列表\n",
    "- 公募基金公司\n",
    "- 公募基金持仓数据\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# !pip install -r ../requirements.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-23T14:06:28.094164Z",
     "start_time": "2020-01-23T14:06:22.711163Z"
    }
   },
   "outputs": [],
   "source": [
    "import tushare as ts\n",
    "import pandas as pd\n",
    "\n",
    "from datetime import timedelta,datetime\n",
    "import time"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-23T14:06:30.088167Z",
     "start_time": "2020-01-23T14:06:29.722164Z"
    }
   },
   "outputs": [],
   "source": [
    "# 若 token 失效，可在公众号 `知行并重` 后台回复 `tushare` 获得最新 token\n",
    "ts.set_token('b6113c6733fb23cc9ee1249f5a61b0c0df033b1280d97cb770378df5')\n",
    "pro = ts.pro_api()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_path = '../data/'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 获取上市公司名录"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "链接：https://tushare.pro/document/2?doc_id=25"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|名称|类型|描述|\n",
    "|--|--|--|\n",
    "|ts_code|str|TS代码|\n",
    "|symbol|str|<font  color=#009688  >**股票代码**</font>|\n",
    "|name|str|<font  color=#009688  >**股票名称**</font>|\n",
    "|area|str|所在地域|\n",
    "|industry|str|<font  color=#009688  >**所属行业**</font>|\n",
    "|fullname|str|股票全称|\n",
    "|enname|str|英文全称|\n",
    "|market|str|市场类型 （主板/中小板/创业板/科创板）|\n",
    "|exchange|str|交易所代码|\n",
    "|curr_type|str|交易货币|\n",
    "|list_status|str|上市状态： L上市 D退市 P暂停上市|\n",
    "|list_date|str|上市日期|\n",
    "|delist_date|str|退市日期|\n",
    "|is_hs|str|是否沪深港通标的，N否 H沪股通 S深股通|"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-07T05:54:58.304405Z",
     "start_time": "2020-01-07T05:54:56.967231Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(3767, 14)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "columns = 'ts_code,symbol,name,area,industry,fullname,enname,market,exchange,curr_type,list_status,list_date,delist_date,is_hs'\n",
    "\n",
    "total_stocks = pro.stock_basic(fields = columns)\n",
    "# total_stocks = pro.query('stock_basic', exchange='', list_status='L', fields= columns)\n",
    "\n",
    "total_stocks.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T07:29:39.569149Z",
     "start_time": "2019-12-24T07:29:39.559183Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SZSE    2186\n",
       "SSE     1560\n",
       "Name: exchange, dtype: int64"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_stocks.exchange.value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T07:33:08.354407Z",
     "start_time": "2019-12-24T07:33:08.308450Z"
    }
   },
   "outputs": [],
   "source": [
    "# 保存数据\n",
    "total_stocks.to_csv(data_path + 'company_lsit_all.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-20T05:12:44.072237Z",
     "start_time": "2020-01-20T05:12:44.037230Z"
    }
   },
   "outputs": [],
   "source": [
    "total_stocks = pd.read_csv(data_path + 'company_lsit_all.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2019-12-24T07:10:04.332832Z",
     "start_time": "2019-12-24T07:10:04.309894Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "主板     1951\n",
       "中小板     940\n",
       "创业板     787\n",
       "科创板      68\n",
       "Name: market, dtype: int64"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_stocks.market.value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 上市公司基本信息"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这部分数据与上面的上市公司名录互补，提取所在省份和城市。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-07T06:13:41.662359Z",
     "start_time": "2020-01-07T06:13:41.653358Z"
    }
   },
   "source": [
    "|名称|类型|默认显示|描述|\n",
    "|---|---|---|---|\n",
    "|ts_code|str|Y| <font  color=#009688  >**股票代码**</font>|\n",
    "|exchange|str|Y| 交易所代码 ，SSE上交所 SZSE深交所|\n",
    "|chairman|str|Y| 法人代表|\n",
    "|manager |str|Y| 总经理|\n",
    "|secretary| str|Y| 董秘|\n",
    "|reg_capital |float| Y| 注册资本|\n",
    "|setup_date|str|Y| 注册日期|\n",
    "|province|str|Y| <font  color=#009688  >**所在省份**</font>|\n",
    "|city|str|Y|  <font  color=#009688  >**所在城市**</font>|\n",
    "|introduction|str|N| 公司介绍|\n",
    "|website |str|Y| 公司主页|\n",
    "|email| str|Y| 电子邮件|\n",
    "|office|str|N| 办公室|\n",
    "|employees| int|Y| 员工人数|\n",
    "|main_business| str|N| 主要业务及产品|\n",
    "|business_scope|str|N| 经营范围|"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-07T06:29:58.075740Z",
     "start_time": "2020-01-07T06:29:56.810875Z"
    }
   },
   "outputs": [],
   "source": [
    "df_szse =  pro.stock_company(exchange = \"SZSE\")\n",
    "df_sse =  pro.stock_company(exchange = \"SSE\")\n",
    "\n",
    "# 合并 深交所 和 上交所 股票\n",
    "df_company_detail = pd.concat([df_szse,df_sse])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-07T06:35:23.616406Z",
     "start_time": "2020-01-07T06:35:23.610406Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((2262, 12), (1627, 12), (3889, 12))"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_szse.shape,df_sse.shape,df_company_detail.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-07T06:36:49.128301Z",
     "start_time": "2020-01-07T06:36:49.085218Z"
    }
   },
   "outputs": [],
   "source": [
    "# 保存数据\n",
    "df_company_detail.to_csv('./stock_graph/company_detail_all.csv',index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-20T08:09:07.723312Z",
     "start_time": "2020-01-20T08:09:07.681301Z"
    }
   },
   "outputs": [],
   "source": [
    "df_company_detail = pd.read_csv('./stock_graph/company_detail_all.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-07T06:36:03.463796Z",
     "start_time": "2020-01-07T06:36:03.442795Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ts_code</th>\n",
       "      <td>300363.SZ</td>\n",
       "      <td>002790.SZ</td>\n",
       "      <td>300493.SZ</td>\n",
       "      <td>002716.SZ</td>\n",
       "      <td>300587.SZ</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>exchange</th>\n",
       "      <td>SZSE</td>\n",
       "      <td>SZSE</td>\n",
       "      <td>SZSE</td>\n",
       "      <td>SZSE</td>\n",
       "      <td>SZSE</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chairman</th>\n",
       "      <td>居年丰</td>\n",
       "      <td>罗远良</td>\n",
       "      <td>郎晓刚</td>\n",
       "      <td>曹永贵</td>\n",
       "      <td>许吉锭</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>manager</th>\n",
       "      <td>居年丰</td>\n",
       "      <td>张剑波</td>\n",
       "      <td>葛琼</td>\n",
       "      <td>曹永贵</td>\n",
       "      <td>许孔斌</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>secretary</th>\n",
       "      <td>陶荣</td>\n",
       "      <td>陈雪峰</td>\n",
       "      <td>庞军</td>\n",
       "      <td>许子军</td>\n",
       "      <td>范薇薇</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>reg_capital</th>\n",
       "      <td>54274.8</td>\n",
       "      <td>40960</td>\n",
       "      <td>47706.9</td>\n",
       "      <td>96047.8</td>\n",
       "      <td>18171.3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>setup_date</th>\n",
       "      <td>20050707</td>\n",
       "      <td>19990419</td>\n",
       "      <td>20001009</td>\n",
       "      <td>20041108</td>\n",
       "      <td>20031226</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>province</th>\n",
       "      <td>重庆</td>\n",
       "      <td>福建</td>\n",
       "      <td>上海</td>\n",
       "      <td>湖南</td>\n",
       "      <td>浙江</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>city</th>\n",
       "      <td>重庆市</td>\n",
       "      <td>厦门市</td>\n",
       "      <td>上海市</td>\n",
       "      <td>郴州市</td>\n",
       "      <td>台州市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>website</th>\n",
       "      <td>www.porton.cn</td>\n",
       "      <td>www.rtplumbing.com</td>\n",
       "      <td>www.fortune-co.com</td>\n",
       "      <td>www.jingui-silver.com</td>\n",
       "      <td>www.tiantie.cn</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>email</th>\n",
       "      <td>porton.db@porton.cn</td>\n",
       "      <td>rtplumbing@rtplumbing.com</td>\n",
       "      <td>investment@fortune-co.com</td>\n",
       "      <td>jinguizq@jingui-silver.com;xuzj@jingui-silver....</td>\n",
       "      <td>tiantie@tiantie.cn;ttzh@tiantie.cn</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>employees</th>\n",
       "      <td>1642</td>\n",
       "      <td>2133</td>\n",
       "      <td>186</td>\n",
       "      <td>605</td>\n",
       "      <td>786</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                               0                          1  \\\n",
       "ts_code                300363.SZ                  002790.SZ   \n",
       "exchange                    SZSE                       SZSE   \n",
       "chairman                     居年丰                        罗远良   \n",
       "manager                      居年丰                        张剑波   \n",
       "secretary                     陶荣                        陈雪峰   \n",
       "reg_capital              54274.8                      40960   \n",
       "setup_date              20050707                   19990419   \n",
       "province                      重庆                         福建   \n",
       "city                         重庆市                        厦门市   \n",
       "website            www.porton.cn         www.rtplumbing.com   \n",
       "email        porton.db@porton.cn  rtplumbing@rtplumbing.com   \n",
       "employees                   1642                       2133   \n",
       "\n",
       "                                     2  \\\n",
       "ts_code                      300493.SZ   \n",
       "exchange                          SZSE   \n",
       "chairman                           郎晓刚   \n",
       "manager                             葛琼   \n",
       "secretary                           庞军   \n",
       "reg_capital                    47706.9   \n",
       "setup_date                    20001009   \n",
       "province                            上海   \n",
       "city                               上海市   \n",
       "website             www.fortune-co.com   \n",
       "email        investment@fortune-co.com   \n",
       "employees                          186   \n",
       "\n",
       "                                                             3  \\\n",
       "ts_code                                              002716.SZ   \n",
       "exchange                                                  SZSE   \n",
       "chairman                                                   曹永贵   \n",
       "manager                                                    曹永贵   \n",
       "secretary                                                  许子军   \n",
       "reg_capital                                            96047.8   \n",
       "setup_date                                            20041108   \n",
       "province                                                    湖南   \n",
       "city                                                       郴州市   \n",
       "website                                  www.jingui-silver.com   \n",
       "email        jinguizq@jingui-silver.com;xuzj@jingui-silver....   \n",
       "employees                                                  605   \n",
       "\n",
       "                                              4  \n",
       "ts_code                               300587.SZ  \n",
       "exchange                                   SZSE  \n",
       "chairman                                    许吉锭  \n",
       "manager                                     许孔斌  \n",
       "secretary                                   范薇薇  \n",
       "reg_capital                             18171.3  \n",
       "setup_date                             20031226  \n",
       "province                                     浙江  \n",
       "city                                        台州市  \n",
       "website                          www.tiantie.cn  \n",
       "email        tiantie@tiantie.cn;ttzh@tiantie.cn  \n",
       "employees                                   786  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_company_detail.head().T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-08T03:05:18.320908Z",
     "start_time": "2020-01-08T03:05:18.315892Z"
    }
   },
   "outputs": [],
   "source": [
    "share_list = set(df_company_detail.ts_code.tolist())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 上市公司管理层"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|名称|类型|默认显示|描述|\n",
    "|----|----|---|--|\n",
    "|ts_code| str|Y| <font  color=#009688  >**TS股票代码**</font>|\n",
    "|ann_date|str|Y| 公告日期|\n",
    "|name|str|Y| <font  color=#009688  >**姓名**</font>|\n",
    "|gender|str|Y| 性别|\n",
    "|lev|str|Y| 岗位类别|\n",
    "|title| str|Y| 岗位|\n",
    "|edu|str|Y| 学历|\n",
    "|national|str|Y| 国籍|\n",
    "|birthday|str|Y| 出生年月|\n",
    "|begin_date|str|Y| 上任日期|\n",
    "|end_date|str|Y| 离任日期|\n",
    "|resume|str|N| 个人简历|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用户需要2000积分才可以调取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-20T05:21:40.623899Z",
     "start_time": "2020-01-20T05:21:40.617897Z"
    }
   },
   "outputs": [],
   "source": [
    "def get_data(share_list,func,data_path='./stock_graph/',filename='temp.csv'):\n",
    "    for i,comp in enumerate(share_list):\n",
    "        df = func(ts_code=comp)\n",
    "        if i == 0:\n",
    "            df.to_csv(data_path + filename,index=False, mode='a')\n",
    "        else:    \n",
    "            df.to_csv(data_path + filename,index=False, mode='a', header=None)\n",
    "\n",
    "        if i % 50 ==0: \n",
    "            print(comp,'_num_:',i)\n",
    "\n",
    "        # 抱歉，您每分钟最多访问该接口80次\n",
    "        time.sleep(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-20T08:09:25.799149Z",
     "start_time": "2020-01-20T08:09:25.793148Z"
    }
   },
   "outputs": [],
   "source": [
    "share_list = list(set(df_company_detail['ts_code']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-20T06:39:58.897020Z",
     "start_time": "2020-01-20T05:21:46.012453Z"
    },
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "002024.SZ _num_: 0\n",
      "300094.SZ _num_: 50\n",
      "300619.SZ _num_: 100\n",
      "000622.SZ _num_: 150\n",
      "600650.SH _num_: 200\n",
      "688030.SH _num_: 250\n",
      "002387.SZ _num_: 300\n",
      "603912.SH _num_: 350\n",
      "600489.SH _num_: 400\n",
      "600061.SH _num_: 450\n",
      "002311.SZ _num_: 500\n",
      "600875.SH _num_: 550\n",
      "002957.SZ _num_: 600\n",
      "603637.SH _num_: 650\n",
      "600733.SH _num_: 700\n",
      "600877.SH _num_: 750\n",
      "000613.SZ _num_: 800\n",
      "600418.SH _num_: 850\n",
      "001965.SZ _num_: 900\n",
      "688188.SH _num_: 950\n",
      "603985.SH _num_: 1000\n",
      "002370.SZ _num_: 1050\n",
      "000673.SZ _num_: 1100\n",
      "002901.SZ _num_: 1150\n",
      "002232.SZ _num_: 1200\n",
      "688310.SH _num_: 1250\n",
      "300656.SZ _num_: 1300\n",
      "600009.SH _num_: 1350\n",
      "300749.SZ _num_: 1400\n",
      "600547.SH _num_: 1450\n",
      "600022.SH _num_: 1500\n",
      "002029.SZ _num_: 1550\n",
      "603959.SH _num_: 1600\n",
      "002768.SZ _num_: 1650\n",
      "600051.SH _num_: 1700\n",
      "002244.SZ _num_: 1750\n",
      "300483.SZ _num_: 1800\n",
      "000008.SZ _num_: 1850\n",
      "000627.SZ _num_: 1900\n",
      "002008.SZ _num_: 1950\n",
      "688101.SH _num_: 2000\n",
      "300430.SZ _num_: 2050\n",
      "000597.SZ _num_: 2100\n",
      "603499.SH _num_: 2150\n",
      "600210.SH _num_: 2200\n",
      "603115.SH _num_: 2250\n",
      "603900.SH _num_: 2300\n",
      "300234.SZ _num_: 2350\n",
      "000938.SZ _num_: 2400\n",
      "603859.SH _num_: 2450\n",
      "300219.SZ _num_: 2500\n",
      "600265.SH _num_: 2550\n",
      "300703.SZ _num_: 2600\n",
      "600774.SH _num_: 2650\n",
      "300553.SZ _num_: 2700\n",
      "300254.SZ _num_: 2750\n",
      "002131.SZ _num_: 2800\n",
      "002376.SZ _num_: 2850\n",
      "300031.SZ _num_: 2900\n",
      "000718.SZ _num_: 2950\n",
      "603936.SH _num_: 3000\n",
      "600740.SH _num_: 3050\n",
      "603569.SH _num_: 3100\n",
      "300383.SZ _num_: 3150\n",
      "002488.SZ _num_: 3200\n",
      "002580.SZ _num_: 3250\n",
      "600269.SH _num_: 3300\n",
      "300033.SZ _num_: 3350\n",
      "603607.SH _num_: 3400\n",
      "300518.SZ _num_: 3450\n",
      "002220.SZ _num_: 3500\n",
      "000728.SZ _num_: 3550\n",
      "002091.SZ _num_: 3600\n",
      "002474.SZ _num_: 3650\n",
      "002520.SZ _num_: 3700\n"
     ]
    }
   ],
   "source": [
    "get_data(share_list,func = pro.stk_managers ,data_path = data_path ,filename=f'stk_managers.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 公募基金列表"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://tushare.pro/document/2?doc_id=19"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|名称|类型|默认显示|描述|\n",
    "|--|--|--|--|\n",
    "|ts_code|str|Y|<font  color=#009688  >**基金代码**</font>|\n",
    "|name|str|Y|简称|\n",
    "|management|str|Y|<font  color=#009688  >**管理人**</font>|\n",
    "|custodian|str|Y|<font  color=#009688  >**托管人**</font>|\n",
    "|fund_type|str|Y|投资类型|\n",
    "|found_date|str|Y|成立日期|\n",
    "|due_date|str|Y|到期日期|\n",
    "|list_date|str|Y|上市时间|\n",
    "|issue_date|str|Y|发行日期|\n",
    "|delist_date|str|Y|退市日期|\n",
    "|issue_amount|float|Y|发行份额(亿)|\n",
    "|m_fee|float|Y|管理费|\n",
    "|c_fee|float|Y|托管费|\n",
    "|duration_year|float|Y|存续期|\n",
    "|p_value|float|Y|面值|\n",
    "|min_amount|float|Y|起点金额(万元)|\n",
    "|exp_return|float|Y|预期收益率|\n",
    "|benchmark|str|Y|业绩比较基准|\n",
    "|status|str|Y|存续状态D摘牌 I发行 L已上市|\n",
    "|invest_type|str|Y|投资风格|\n",
    "|type|str|Y|基金类型|\n",
    "|trustee|str|Y|受托人|\n",
    "|purc_startdate|str|Y|日常申购起始日|\n",
    "|redm_startdate|str|Y|日常赎回起始日|\n",
    "|market|str|Y|E场内O场外|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "描述：获取公募基金数据列表，包括场内和场外基金\n",
    "积分：用户需要1500积分才可以调取"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T07:39:50.973614Z",
     "start_time": "2020-01-10T07:39:46.751148Z"
    }
   },
   "outputs": [],
   "source": [
    "df_e = pro.fund_basic(market='E')   # 交易市场: E场内 O场外（默认E）\n",
    "df_o = pro.fund_basic(market='O')   # 交易市场: E场内 O场外（默认E）\n",
    "\n",
    "df_all = pd.concat([df_e,df_o])\n",
    "\n",
    "df_all.to_csv('./stock_graph/fund_basic.csv',index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T11:54:34.549828Z",
     "start_time": "2020-01-10T11:54:34.542835Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10859, 25)"
      ]
     },
     "execution_count": 127,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_all.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T11:55:06.110267Z",
     "start_time": "2020-01-10T11:55:06.068267Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ts_code</th>\n",
       "      <th>name</th>\n",
       "      <th>management</th>\n",
       "      <th>custodian</th>\n",
       "      <th>fund_type</th>\n",
       "      <th>found_date</th>\n",
       "      <th>due_date</th>\n",
       "      <th>list_date</th>\n",
       "      <th>issue_date</th>\n",
       "      <th>delist_date</th>\n",
       "      <th>...</th>\n",
       "      <th>min_amount</th>\n",
       "      <th>exp_return</th>\n",
       "      <th>benchmark</th>\n",
       "      <th>status</th>\n",
       "      <th>invest_type</th>\n",
       "      <th>type</th>\n",
       "      <th>trustee</th>\n",
       "      <th>purc_startdate</th>\n",
       "      <th>redm_startdate</th>\n",
       "      <th>market</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>515070.SH</td>\n",
       "      <td>AI智能</td>\n",
       "      <td>华夏基金</td>\n",
       "      <td>中国银行</td>\n",
       "      <td>股票型</td>\n",
       "      <td>20191209</td>\n",
       "      <td>None</td>\n",
       "      <td>20191224</td>\n",
       "      <td>20191121</td>\n",
       "      <td>None</td>\n",
       "      <td>...</td>\n",
       "      <td>0.1000</td>\n",
       "      <td>None</td>\n",
       "      <td>中证人工智能主题指数收益率</td>\n",
       "      <td>L</td>\n",
       "      <td>被动指数型</td>\n",
       "      <td>契约型开放式</td>\n",
       "      <td>None</td>\n",
       "      <td>20191224</td>\n",
       "      <td>20191224</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>515330.SH</td>\n",
       "      <td>天弘300</td>\n",
       "      <td>天弘基金</td>\n",
       "      <td>招商证券</td>\n",
       "      <td>股票型</td>\n",
       "      <td>20191205</td>\n",
       "      <td>None</td>\n",
       "      <td>20191226</td>\n",
       "      <td>20191104</td>\n",
       "      <td>None</td>\n",
       "      <td>...</td>\n",
       "      <td>0.1000</td>\n",
       "      <td>None</td>\n",
       "      <td>沪深300指数收益率</td>\n",
       "      <td>L</td>\n",
       "      <td>被动指数型</td>\n",
       "      <td>契约型开放式</td>\n",
       "      <td>None</td>\n",
       "      <td>20191226</td>\n",
       "      <td>20191226</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>515310.SH</td>\n",
       "      <td>添富300</td>\n",
       "      <td>汇添富基金</td>\n",
       "      <td>招商银行</td>\n",
       "      <td>股票型</td>\n",
       "      <td>20191204</td>\n",
       "      <td>None</td>\n",
       "      <td>20191225</td>\n",
       "      <td>20190927</td>\n",
       "      <td>None</td>\n",
       "      <td>...</td>\n",
       "      <td>0.1000</td>\n",
       "      <td>None</td>\n",
       "      <td>沪深300指数收益率</td>\n",
       "      <td>L</td>\n",
       "      <td>被动指数型</td>\n",
       "      <td>契约型开放式</td>\n",
       "      <td>None</td>\n",
       "      <td>20191225</td>\n",
       "      <td>20191225</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>501089.SH</td>\n",
       "      <td>消费增强</td>\n",
       "      <td>方正富邦基金</td>\n",
       "      <td>中国民生银行</td>\n",
       "      <td>股票型</td>\n",
       "      <td>20191129</td>\n",
       "      <td>None</td>\n",
       "      <td>20191231</td>\n",
       "      <td>20191008</td>\n",
       "      <td>None</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0001</td>\n",
       "      <td>None</td>\n",
       "      <td>中证主要消费红利指数收益率*95%+人民币银行活期存款收益率(税后)*5%</td>\n",
       "      <td>I</td>\n",
       "      <td>增强指数型</td>\n",
       "      <td>契约型开放式</td>\n",
       "      <td>None</td>\n",
       "      <td>20191231</td>\n",
       "      <td>20191231</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>515080.SH</td>\n",
       "      <td>N中证红利</td>\n",
       "      <td>招商基金</td>\n",
       "      <td>浦发银行</td>\n",
       "      <td>股票型</td>\n",
       "      <td>20191128</td>\n",
       "      <td>None</td>\n",
       "      <td>20191227</td>\n",
       "      <td>20191021</td>\n",
       "      <td>None</td>\n",
       "      <td>...</td>\n",
       "      <td>0.1000</td>\n",
       "      <td>None</td>\n",
       "      <td>中证红利指数收益率</td>\n",
       "      <td>L</td>\n",
       "      <td>被动指数型</td>\n",
       "      <td>契约型开放式</td>\n",
       "      <td>None</td>\n",
       "      <td>20191227</td>\n",
       "      <td>20191227</td>\n",
       "      <td>E</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 25 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "     ts_code   name management custodian fund_type found_date due_date  \\\n",
       "0  515070.SH   AI智能       华夏基金      中国银行       股票型   20191209     None   \n",
       "1  515330.SH  天弘300       天弘基金      招商证券       股票型   20191205     None   \n",
       "2  515310.SH  添富300      汇添富基金      招商银行       股票型   20191204     None   \n",
       "3  501089.SH   消费增强     方正富邦基金    中国民生银行       股票型   20191129     None   \n",
       "4  515080.SH  N中证红利       招商基金      浦发银行       股票型   20191128     None   \n",
       "\n",
       "  list_date issue_date delist_date  ...  min_amount  exp_return  \\\n",
       "0  20191224   20191121        None  ...      0.1000        None   \n",
       "1  20191226   20191104        None  ...      0.1000        None   \n",
       "2  20191225   20190927        None  ...      0.1000        None   \n",
       "3  20191231   20191008        None  ...      0.0001        None   \n",
       "4  20191227   20191021        None  ...      0.1000        None   \n",
       "\n",
       "                               benchmark  status  invest_type    type trustee  \\\n",
       "0                          中证人工智能主题指数收益率       L        被动指数型  契约型开放式    None   \n",
       "1                             沪深300指数收益率       L        被动指数型  契约型开放式    None   \n",
       "2                             沪深300指数收益率       L        被动指数型  契约型开放式    None   \n",
       "3  中证主要消费红利指数收益率*95%+人民币银行活期存款收益率(税后)*5%       I        增强指数型  契约型开放式    None   \n",
       "4                              中证红利指数收益率       L        被动指数型  契约型开放式    None   \n",
       "\n",
       "  purc_startdate redm_startdate market  \n",
       "0       20191224       20191224      E  \n",
       "1       20191226       20191226      E  \n",
       "2       20191225       20191225      E  \n",
       "3       20191231       20191231      E  \n",
       "4       20191227       20191227      E  \n",
       "\n",
       "[5 rows x 25 columns]"
      ]
     },
     "execution_count": 128,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_all.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 公募基金公司\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "描述：获取公募基金管理人列表\n",
    "\n",
    "积分：用户需要1500积分才可以调取，一次可以提取全部数据。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|名称|类型|默认显示|描述|\n",
    "|--|--|--|--|\n",
    "|name|str|Y|<font  color=#009688  >**基金公司名称**</font>|\n",
    "|shortname|str|Y|简称|\n",
    "|short_enname|str|N|英文缩写|\n",
    "|province|str|Y|省份|\n",
    "|city|str|Y|城市|\n",
    "|address|str|Y|注册地址|\n",
    "|phone|str|Y|电话|\n",
    "|office|str|Y|办公地址|\n",
    "|website|str|Y|公司网址|\n",
    "|chairman|str|Y|法人代表|\n",
    "|manager|str|Y|总经理|\n",
    "|reg_capital|float|Y|注册资本|\n",
    "|setup_date|str|Y|成立日期|\n",
    "|end_date|str|Y|公司终止日期|\n",
    "|employees|float|Y|员工总数|\n",
    "|main_business|str|Y|主要产品及业务|\n",
    "|org_code|str|Y|组织机构代码|\n",
    "|credit_code|str|Y|统一社会信用代码|"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T11:52:39.898518Z",
     "start_time": "2020-01-10T11:52:30.471442Z"
    }
   },
   "outputs": [],
   "source": [
    "df = pro.fund_company()\n",
    "\n",
    "df.to_csv('./stock_graph/fund_company.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T11:52:41.407278Z",
     "start_time": "2020-01-10T11:52:41.373275Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>name</th>\n",
       "      <td>北京广能投资基金管理有限公司</td>\n",
       "      <td>宏源证券股份有限公司</td>\n",
       "      <td>国元证券股份有限公司</td>\n",
       "      <td>广发证券股份有限公司</td>\n",
       "      <td>长江证券股份有限公司</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>shortname</th>\n",
       "      <td>广能基金</td>\n",
       "      <td>宏源证券</td>\n",
       "      <td>国元证券</td>\n",
       "      <td>广发证券</td>\n",
       "      <td>长江证券</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>province</th>\n",
       "      <td>北京</td>\n",
       "      <td>新疆</td>\n",
       "      <td>安徽</td>\n",
       "      <td>广东</td>\n",
       "      <td>湖北</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>city</th>\n",
       "      <td>北京市</td>\n",
       "      <td>乌鲁木齐市</td>\n",
       "      <td>合肥市</td>\n",
       "      <td>广州市</td>\n",
       "      <td>武汉市</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>address</th>\n",
       "      <td>北京市朝阳区北四环中路27号院5号楼2712-2715A</td>\n",
       "      <td>新疆维吾尔自治区乌鲁木齐市文艺路233号宏源大厦</td>\n",
       "      <td>安徽省合肥市梅山路18号</td>\n",
       "      <td>广东省广州市黄埔区中新广州知识城腾飞一街2号618室</td>\n",
       "      <td>湖北省武汉市江汉区新华路特8号</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>phone</th>\n",
       "      <td>None</td>\n",
       "      <td>86-991-2301870</td>\n",
       "      <td>86-551-62207323,86-551-62207968</td>\n",
       "      <td>86-20-87555888,86-20-87550565,86-20-87550265</td>\n",
       "      <td>86-27-65799866,86-27-65799856</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>office</th>\n",
       "      <td>北京市朝阳区北四环中路27号院5号楼2712-2715A</td>\n",
       "      <td>新疆维吾尔自治区乌鲁木齐市文艺路233号宏源大厦</td>\n",
       "      <td>安徽省合肥市梅山路18号</td>\n",
       "      <td>广东省广州市天河区天河北路183-187号大都会广场40楼5楼,7楼,8楼,18楼,19楼,...</td>\n",
       "      <td>湖北省武汉市江汉区新华路特8号</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>website</th>\n",
       "      <td>www.gnfund.cn</td>\n",
       "      <td>www.hysec.com</td>\n",
       "      <td>www.gyzq.com.cn</td>\n",
       "      <td>www.gf.com.cn</td>\n",
       "      <td>www.cjsc.com</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>chairman</th>\n",
       "      <td>刘锡潜</td>\n",
       "      <td>冯戎</td>\n",
       "      <td>蔡咏</td>\n",
       "      <td>孙树明</td>\n",
       "      <td>尤习贵</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>manager</th>\n",
       "      <td>杨运成</td>\n",
       "      <td>冯戎</td>\n",
       "      <td>俞仕新</td>\n",
       "      <td>林治海</td>\n",
       "      <td>刘元瑞</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>reg_capital</th>\n",
       "      <td>10000</td>\n",
       "      <td>397241</td>\n",
       "      <td>336545</td>\n",
       "      <td>762109</td>\n",
       "      <td>552947</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>setup_date</th>\n",
       "      <td>20111031</td>\n",
       "      <td>19930525</td>\n",
       "      <td>19970606</td>\n",
       "      <td>19940121</td>\n",
       "      <td>19970724</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>end_date</th>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>employees</th>\n",
       "      <td>10</td>\n",
       "      <td>5347</td>\n",
       "      <td>3330</td>\n",
       "      <td>12103</td>\n",
       "      <td>6637</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>main_business</th>\n",
       "      <td>None</td>\n",
       "      <td>主要业务:代理买卖证券.</td>\n",
       "      <td>主营业务:经纪业务,自营投资业务,投行业务,资产管理业务,基金管理业务,期货业务,境外业务国...</td>\n",
       "      <td>主营业务:证券经纪</td>\n",
       "      <td>主营业务:证券经纪</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>org_code</th>\n",
       "      <td>584419680</td>\n",
       "      <td>228593068</td>\n",
       "      <td>731686376</td>\n",
       "      <td>126335439</td>\n",
       "      <td>700821272</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>credit_code</th>\n",
       "      <td>None</td>\n",
       "      <td>None</td>\n",
       "      <td>91340000731686376P</td>\n",
       "      <td>91440000126335439C</td>\n",
       "      <td>91420000700821272A</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                          0                         1  \\\n",
       "name                         北京广能投资基金管理有限公司                宏源证券股份有限公司   \n",
       "shortname                              广能基金                      宏源证券   \n",
       "province                                 北京                        新疆   \n",
       "city                                    北京市                     乌鲁木齐市   \n",
       "address        北京市朝阳区北四环中路27号院5号楼2712-2715A  新疆维吾尔自治区乌鲁木齐市文艺路233号宏源大厦   \n",
       "phone                                  None            86-991-2301870   \n",
       "office         北京市朝阳区北四环中路27号院5号楼2712-2715A  新疆维吾尔自治区乌鲁木齐市文艺路233号宏源大厦   \n",
       "website                       www.gnfund.cn             www.hysec.com   \n",
       "chairman                                刘锡潜                        冯戎   \n",
       "manager                                 杨运成                        冯戎   \n",
       "reg_capital                           10000                    397241   \n",
       "setup_date                         20111031                  19930525   \n",
       "end_date                               None                      None   \n",
       "employees                                10                      5347   \n",
       "main_business                          None              主要业务:代理买卖证券.   \n",
       "org_code                          584419680                 228593068   \n",
       "credit_code                            None                      None   \n",
       "\n",
       "                                                               2  \\\n",
       "name                                                  国元证券股份有限公司   \n",
       "shortname                                                   国元证券   \n",
       "province                                                      安徽   \n",
       "city                                                         合肥市   \n",
       "address                                             安徽省合肥市梅山路18号   \n",
       "phone                            86-551-62207323,86-551-62207968   \n",
       "office                                              安徽省合肥市梅山路18号   \n",
       "website                                          www.gyzq.com.cn   \n",
       "chairman                                                      蔡咏   \n",
       "manager                                                      俞仕新   \n",
       "reg_capital                                               336545   \n",
       "setup_date                                              19970606   \n",
       "end_date                                                    None   \n",
       "employees                                                   3330   \n",
       "main_business  主营业务:经纪业务,自营投资业务,投行业务,资产管理业务,基金管理业务,期货业务,境外业务国...   \n",
       "org_code                                               731686376   \n",
       "credit_code                                   91340000731686376P   \n",
       "\n",
       "                                                               3  \\\n",
       "name                                                  广发证券股份有限公司   \n",
       "shortname                                                   广发证券   \n",
       "province                                                      广东   \n",
       "city                                                         广州市   \n",
       "address                               广东省广州市黄埔区中新广州知识城腾飞一街2号618室   \n",
       "phone               86-20-87555888,86-20-87550565,86-20-87550265   \n",
       "office         广东省广州市天河区天河北路183-187号大都会广场40楼5楼,7楼,8楼,18楼,19楼,...   \n",
       "website                                            www.gf.com.cn   \n",
       "chairman                                                     孙树明   \n",
       "manager                                                      林治海   \n",
       "reg_capital                                               762109   \n",
       "setup_date                                              19940121   \n",
       "end_date                                                    None   \n",
       "employees                                                  12103   \n",
       "main_business                                          主营业务:证券经纪   \n",
       "org_code                                               126335439   \n",
       "credit_code                                   91440000126335439C   \n",
       "\n",
       "                                           4  \n",
       "name                              长江证券股份有限公司  \n",
       "shortname                               长江证券  \n",
       "province                                  湖北  \n",
       "city                                     武汉市  \n",
       "address                      湖北省武汉市江汉区新华路特8号  \n",
       "phone          86-27-65799866,86-27-65799856  \n",
       "office                       湖北省武汉市江汉区新华路特8号  \n",
       "website                         www.cjsc.com  \n",
       "chairman                                 尤习贵  \n",
       "manager                                  刘元瑞  \n",
       "reg_capital                           552947  \n",
       "setup_date                          19970724  \n",
       "end_date                                None  \n",
       "employees                               6637  \n",
       "main_business                      主营业务:证券经纪  \n",
       "org_code                           700821272  \n",
       "credit_code               91420000700821272A  "
      ]
     },
     "execution_count": 125,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head().T"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 关系——公募基金持仓数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "获取公募基金持仓数据，**季度**更新\n",
    "积分：用户需要至少1000积分才可以调取，"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "https://tushare.pro/document/2?doc_id=121"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "|名称|类型|默认显示|描述|\n",
    "|--|--|--|--|\n",
    "|ts_code| str| Y| <font  color=#009688  >**TS基金代码**</font>|\n",
    "|ann_date|str |Y| 公告日期|\n",
    "|end_date|str |Y| 截止日期|\n",
    "|symbol|str| Y|  <font  color=#009688  >**股票代码**</font>|\n",
    "|mkv |float| Y| 持有股票市值(元)|\n",
    "|amount|float| Y| 持有股票数量（股）|\n",
    "|stk_mkv_ratio| float| Y| 占股票市值比|\n",
    "|stk_float_ratio| float| Y| 占流通股本比例|"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T11:55:53.238567Z",
     "start_time": "2020-01-10T11:55:53.222565Z"
    }
   },
   "outputs": [],
   "source": [
    "fund_list = list(set(df_all.ts_code))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T11:56:05.080448Z",
     "start_time": "2020-01-10T11:56:05.072447Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10859"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(fund_list)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T13:22:08.948086Z",
     "start_time": "2020-01-10T13:22:08.941089Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['150242.SZ', '002873.OF', '540001.OF', '007371.OF', '161729.OF']"
      ]
     },
     "execution_count": 135,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fund_list[:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2020-01-10T16:40:27.447912Z",
     "start_time": "2020-01-10T13:22:13.433674Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "000227.OF _num_: 0\n",
      "164509.SZ _num_: 50\n",
      "519971.OF _num_: 100\n",
      "001455.OF _num_: 150\n",
      "005191.OF _num_: 200\n",
      "501030.SH _num_: 250\n",
      "519022.OF _num_: 300\n",
      "510100.SH _num_: 350\n",
      "005388.OF _num_: 400\n",
      "582003.OF _num_: 450\n",
      "519702.OF _num_: 500\n",
      "006218.OF _num_: 550\n",
      "004436.OF _num_: 600\n",
      "000085.OF _num_: 650\n",
      "502036.SH _num_: 700\n",
      "007851.OF _num_: 750\n",
      "519611.OF _num_: 800\n",
      "003957.OF _num_: 850\n",
      "519773.OF _num_: 900\n",
      "162416.SZ _num_: 950\n",
      "006522.OF _num_: 1000\n",
      "001105.OF _num_: 1050\n",
      "150218.SZ _num_: 1100\n",
      "001445.OF _num_: 1150\n",
      "002436.OF _num_: 1200\n",
      "310368.OF _num_: 1250\n",
      "150081.SZ _num_: 1300\n",
      "007445.OF _num_: 1350\n",
      "006624.OF _num_: 1400\n",
      "006505.OF _num_: 1450\n",
      "001788.OF _num_: 1500\n",
      "002736.OF _num_: 1550\n",
      "000110.OF _num_: 1600\n",
      "004741.OF _num_: 1650\n",
      "150017.SZ _num_: 1700\n",
      "005833.OF _num_: 1750\n",
      "002039.OF _num_: 1800\n",
      "001893.OF _num_: 1850\n",
      "005447.OF _num_: 1900\n",
      "003228.OF _num_: 1950\n",
      "184722.SZ _num_: 2000\n",
      "161620.OF _num_: 2050\n",
      "006573.OF _num_: 2100\n",
      "002727.OF _num_: 2150\n",
      "582201.OF _num_: 2200\n",
      "007449.OF _num_: 2250\n",
      "001939.OF _num_: 2300\n",
      "000343.OF _num_: 2350\n",
      "002210.OF _num_: 2400\n",
      "007021.OF _num_: 2450\n",
      "007380.OF _num_: 2500\n",
      "002762.OF _num_: 2550\n",
      "400003.OF _num_: 2600\n",
      "002904.OF _num_: 2650\n",
      "007664.OF _num_: 2700\n",
      "002312.OF _num_: 2750\n",
      "003621.OF _num_: 2800\n",
      "001386.OF _num_: 2850\n",
      "005555.OF _num_: 2900\n",
      "002202.OF _num_: 2950\n",
      "002041.OF _num_: 3000\n",
      "005078.OF _num_: 3050\n",
      "003978.OF _num_: 3100\n",
      "006823.OF _num_: 3150\n",
      "001459.OF _num_: 3200\n",
      "007097.OF _num_: 3250\n",
      "006708.OF _num_: 3300\n",
      "519918.OF _num_: 3350\n",
      "159956.SZ _num_: 3400\n",
      "004298.OF _num_: 3450\n",
      "005234.OF _num_: 3500\n",
      "160725.OF _num_: 3550\n",
      "004640.OF _num_: 3600\n",
      "007278.OF _num_: 3650\n",
      "007006.OF _num_: 3700\n",
      "006235.OF _num_: 3750\n",
      "002425.OF _num_: 3800\n",
      "008202.OF _num_: 3850\n",
      "003154.OF _num_: 3900\n",
      "001846.OF _num_: 3950\n",
      "002102.OF _num_: 4000\n",
      "4037 error: 001526.OF\n",
      "007584.OF _num_: 4050\n",
      "006379.OF _num_: 4100\n",
      "007095.OF _num_: 4150\n",
      "000883.OF _num_: 4200\n",
      "002099.OF _num_: 4250\n",
      "005209.OF _num_: 4300\n",
      "450019.OF _num_: 4350\n",
      "006210.OF _num_: 4400\n",
      "002395.OF _num_: 4450\n",
      "110008.OF _num_: 4500\n",
      "006844.OF _num_: 4550\n",
      "004150.OF _num_: 4600\n",
      "100035.OF _num_: 4650\n",
      "150290.SZ _num_: 4700\n",
      "159969.SZ _num_: 4750\n",
      "002043.OF _num_: 4800\n",
      "005711.OF _num_: 4850\n",
      "161035.SZ _num_: 4900\n",
      "007936.OF _num_: 4950\n",
      "160105.SZ _num_: 5000\n",
      "002048.OF _num_: 5050\n",
      "007287.OF _num_: 5100\n",
      "004006.OF _num_: 5150\n",
      "004352.OF _num_: 5200\n",
      "007493.OF _num_: 5250\n",
      "005277.OF _num_: 5300\n",
      "163115.OF _num_: 5350\n",
      "960025.OF _num_: 5400\n",
      "006524.OF _num_: 5450\n",
      "005400.OF _num_: 5500\n",
      "005104.OF _num_: 5550\n",
      "005914.OF _num_: 5600\n",
      "002506.OF _num_: 5650\n",
      "007309.OF _num_: 5700\n",
      "001926.OF _num_: 5750\n",
      "002273.OF _num_: 5800\n",
      "213007.OF _num_: 5850\n",
      "001974.OF _num_: 5900\n",
      "007611.OF _num_: 5950\n",
      "002454.OF _num_: 6000\n",
      "150102.SZ _num_: 6050\n",
      "166401.SZ _num_: 6100\n",
      "007428.OF _num_: 6150\n",
      "290007.OF _num_: 6200\n",
      "6226 error: 166013.OF\n",
      "005293.OF _num_: 6250\n",
      "000656.OF _num_: 6300\n",
      "003639.OF _num_: 6350\n",
      "006019.OF _num_: 6400\n",
      "000640.OF _num_: 6450\n",
      "000621.OF _num_: 6500\n",
      "161727.SZ _num_: 6550\n",
      "005968.OF _num_: 6600\n",
      "004791.OF _num_: 6650\n",
      "001415.OF _num_: 6700\n",
      "000378.OF _num_: 6750\n",
      "000716.OF _num_: 6800\n",
      "002783.OF _num_: 6850\n",
      "003063.OF _num_: 6900\n",
      "002548.OF _num_: 6950\n",
      "000757.OF _num_: 7000\n",
      "169106.SZ _num_: 7050\n",
      "004132.OF _num_: 7100\n",
      "001204.OF _num_: 7150\n",
      "007413.OF _num_: 7200\n",
      "002042.OF _num_: 7250\n",
      "003791.OF _num_: 7300\n",
      "001623.OF _num_: 7350\n",
      "000767.OF _num_: 7400\n",
      "003795.OF _num_: 7450\n",
      "001110.OF _num_: 7500\n",
      "001680.OF _num_: 7550\n",
      "006195.OF _num_: 7600\n",
      "007645.OF _num_: 7650\n",
      "004283.OF _num_: 7700\n",
      "006357.OF _num_: 7750\n",
      "675161.OF _num_: 7800\n",
      "008354.OF _num_: 7850\n",
      "150021.SZ _num_: 7900\n",
      "310338.OF _num_: 7950\n",
      "150069.SZ _num_: 8000\n",
      "501075.SH _num_: 8050\n",
      "519960.OF _num_: 8100\n",
      "007475.OF _num_: 8150\n",
      "005109.OF _num_: 8200\n",
      "005580.OF _num_: 8250\n",
      "000205.OF _num_: 8300\n",
      "660003.OF _num_: 8350\n",
      "006899.OF _num_: 8400\n",
      "000812.OF _num_: 8450\n",
      "004168.OF _num_: 8500\n",
      "471060.OF _num_: 8550\n",
      "000769.OF _num_: 8600\n",
      "004573.OF _num_: 8650\n",
      "006206.OF _num_: 8700\n",
      "229002.OF _num_: 8750\n",
      "005571.OF _num_: 8800\n",
      "002027.OF _num_: 8850\n",
      "006316.OF _num_: 8900\n",
      "005132.OF _num_: 8950\n",
      "004827.OF _num_: 9000\n",
      "002942.OF _num_: 9050\n",
      "002515.OF _num_: 9100\n",
      "002357.OF _num_: 9150\n",
      "008606.OF _num_: 9200\n"
     ]
    }
   ],
   "source": [
    "get_data(fund_list,func = pro.fund_portfolio ,data_path = data_path ,filename=f'fund_portfolio.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 构建数据模型 \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过对获取的数据进行梳理，明确内部之间的关联关系，确定节点和关系"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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2x04eYFrM/c+t/eyba7Fve+XLGBU3TqHzqVz6tzHduqUs43qg/qiPiHNIzB37tysrG+//fbmVc7REIAABCAAgRgS8GOh1tc+VLIYpxxJMv8cFtflm1jUsfncsu2fQ58toajzpX9n/1tbMiUd7fhM39nxcSxlK9Yv2VClhIRkpchzXghAAAIQgAAEmk3gtddec0uWLHFnnnlmFFhZgJWt7Ni7v/vcN8e6z46/yrWdcbNrM+de13rBRrfvTza7Vkufci1vfd7teUeda7H6vfo/fdY2fad9tK+O0bGqQ3WpzmznS9+utqrNajtSXAJaYdqnT5+Mupg6dap77733intCaoMABCAAAQhUkMDEiROja55+EI1j8qspbbLYqdIJST/JqWdcpvfF3sYdWkJStmKMZUOVEhKSlSLPeSEAAQhAAAIQKCqB999/323YsMHNmTPHDRo0KAq0LOCqVKm2zJ49223cuNGpjUhpCfzpT39yl1xySUb99+zZ091///2lbQC1QwACEIAABMpEYPr06dH17uAxMxokzNITaKH839yYLd9Epq1w1PkysfGfH6k3b6fvY+0MLSEpW7G2y4YqJSQkK0We80IAAhCAAAQgUFIC27dvdw888ICrra1148ePd/3757+K0YK0QkudQ+fSOXVutQGpDIG77rrLffGLX4wCbl+XM2fOdH//+98r0zDOCgEIQAACECgSgYULF0bXOT2vOj1hFur//jW7KZ+LkZDUG7nt3FoJmYmlfR9aQlK2Ym2XDVVKSEhWijznhQAEIACBqiCwZs2aquhnKJ386KOP6l9yotWKS5cudTNmzHBTpkxxY8eOdcOHD3c1NTWuX79+rkePHq5r1671f/qsbfpO+4wbN67+GB2rOlSXXpyiupF4EXj11Vfr9WVBt1/+y7/8i3v00Ufj1WBaAwEIQAACECiAwH337b719tBhEzMmzTIl0uK+za7X+SYW1R//9up8j8u1QtL/7tOX35qRrbUztITkod/afau/bKhSQkKyUuQ5LwQgAAEIJJqAXlIyadKk+l8fV6xYkei+0jkIxJ2AEsc2aUgvK7kyIO7caB8EIAABCMSbwDPPPBNd347oc3rGpFnck4+Z2mfX6nwTi8VOSPq3ah/RtyYrV2tnaAlJ2Yq1XTZUKSEhWSnynBcCEIAABBJLYMuWLfUr6uxCr/L5559PbH/p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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "实体(节点)方面\n",
    "1. 省份\n",
    "2. 城市\n",
    "3. 公司(上市公司 \\ 基金管理公司 \\ 基金托管公司)\n",
    "4. 人（上市公司管理层）\n",
    "5. 基金\n",
    "6. 行业\n",
    "\n",
    "关系方面\n",
    "1. 城市 - [IN_PROVINCE] - > 省份 \n",
    "2. 公司(上市公司\\基金管理公司\\ 基金托管公司) - [IN_CITY] - > 城市\n",
    "4. 公司(上市公司) - [HAS_MANGER] - > 人（上市公司管理层）  [6类]\n",
    "5. 公司(上市公司) - [IN_INDUSTRY] - > 行业\n",
    "6. 基金  - [HAS_MANAGEMNET] - > 公司(基金管理公司)\n",
    "6. 基金  - [HAS_CUSTODIAN] - > 公司(基金托管公司)\n",
    "7. 基金  - [IN_PORTFOLIO] ->  公司(上市公司)\n",
    "\n",
    "初步确定数据模型如下。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![shuju](../pictures/screenshot_2.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": "block",
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
